'use strict'

const path = require("path");

function resolve(dir) {
  return path.join(__dirname, dir);
}

//端口号
const port = process.env.port || 9527
//请求ip
const ip = process.env.VUE_APP_BASE_API

module.exports = {
	//项目构建时输出的目录
	publicPath: '/',
	//放置静态资源的目录
	outputDir: 'dist',
	//html 的输出路径
	assetsDir: 'assets',
	//是否在开发环境下每次保存代码时都启用 eslint验证
	lintOnSave: false,
	//设置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 标签的 crossorigin 属性。
	productionSourceMap: false,
	//代理
	devServer: {
		//开发环境运行时的端口
		port: port,
		//是否启用HTTPS协议
		https: false,
		//是否开启热加载
		hot: true,
		// 关闭域名检查
		disableHostCheck: true,
		//当出现编译错误或警告时，在浏览器中显示全屏覆盖
		overlay: {
		    warnings: false,
		    errors: true
		},
		proxy: {
			'/api': {
				//实际跨域请求的API地址
				target: ip,
				//是否支持跨域
				changeOrigin: true,
				ws: true,
				// https请求则使用true
				secure: false,
				//请求地址重写
				pathRewrite: {
					'^/api': '/'
				}
			}
		}
	},
	//路径配置
	chainWebpack(config){
		//路径别名
		config.resolve.alias.set('@',resolve('src'))
		
		//添加svg rule loader
		const svgRule = config.module.rule('svg') //找到svg-loader
		svgRule.uses.clear() // 清除已有的loader, 如果不这样做会添加在此loader之后
		svgRule.exclude.add(/node_modules/) // 正则匹配排除node_modules目录
		//添加svg新的loader处理
		svgRule.test(/\.svg$/)
		.use('svg-sprite-loader')
		.loader('svg-sprite-loader')
		.options({
			symbolId: 'icon-[name]',
		})
		
		// 修改images loader 添加svg处理
		const imagesRule = config.module.rule('images')
		imagesRule.exclude.add(resolve('src/icons'))
		config.module
		      .rule('images')
		      .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
	}
	
}